package gob.inei.enaho.model.service;

import gob.inei.enaho.model.domain.persona.Hogar;
import gob.inei.enaho.model.domain.persona.MiembroHogar;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import android.database.Cursor;

import util.android.sqlite.SQLiteUtil;
import util.patron.command.Command1;


public class MiembroHogarEna01Cap200Service 
extends AbstractHogarService
{

	@Override
	public String getNombreTabla() {
		return "CampoEna01_Cap_200";
	}

	public List<MiembroHogar> findByHogar(Hogar hogar) throws SQLException {
		final List<MiembroHogar> lista = new ArrayList<MiembroHogar>();
		String sql = "select * from "+getNombreTabla()+" "+crearWhere(hogar);
		SQLiteUtil.executeQuery(getOpenHelper(), sql, new Command1<Cursor>() {			
			@Override
			public void execute(Cursor obj) throws Exception {
				MiembroHogar m = new MiembroHogar();
				m.setNroOrden(SQLiteUtil.getString(obj, "p201"));
				m.setNombres(SQLiteUtil.getString(obj, "p202a"));
				m.setApellidos(SQLiteUtil.getString(obj, "p202b"));
				lista.add(m);
			}
		});
		return lista;
	}

	public String findSiguienteNroOrdenByHogar(Hogar hogar) throws SQLException {
		final MiembroHogar m = new MiembroHogar();
		m.setNroOrden("0");
		
		String sql = "select * from "+getNombreTabla()+" "+crearWhere(hogar);
		SQLiteUtil.executeQuery(getOpenHelper(), sql, new Command1<Cursor>() {			
			@Override
			public void execute(Cursor obj) throws Exception {				
				String ord = SQLiteUtil.getString(obj, "p201");
				
				int nroOrdActual = Integer.parseInt(m.getNroOrden()); 
				int nroOrd = Integer.parseInt(ord);
				if(nroOrd>nroOrdActual) {
					m.setNroOrden(nroOrd+"");
				}				
			}
		});
		
		int nroOrdActual = Integer.parseInt(m.getNroOrden());
		
		return (nroOrdActual+1)+"";
	}
	
	/*
	public String findValorByColumna(Hogar hogar, String columna) throws SQLException  {
		return findValorByColumna(hogar,null,columna);
	}

	public RegistroImpl findById(Hogar hogar, final List<String> nombresInputs) throws Exception {
		return findById(hogar, null, nombresInputs);
	}
	*/
}
